/**
 *Copyright(c) HNA SYSTEMS Co., LTD
 *
 *@date 2013-7-24
 * 	
 *Original Author: 郑兴(zhengxing)
 *
 *ChangeLog
 *
 */
package com.hnas.sys.dao;

import java.util.List;

import com.hnas.core.dao.BaseDao;
import com.hnas.sys.orm.Resource;
import com.hnas.sys.service.system.criteria.ResourceCriterial;

/**
 * @author 郑兴(zhengxing)
 *
 */
public interface ResourceDAO extends BaseDao<Resource> {
	/**
	 * <pre></pre>
	 * @Auther 郑兴(zhengxing)
	 * @date 2013年9月4日 下午3:44:31
	 * @return
	 */
	public List<Resource> loadAll();
	
	/**
	 * <pre>加载所有资源</pre>
	 * @Auther 郑兴(zhengxing)
	 * @date 2013年9月4日 下午3:44:18
	 * @return
	 */
	public List<Resource> loadAllReference();
	
	/**
	 * <pre>查询资源</pre>
	 * @Auther 郑兴(zhengxing)
	 * @return
	 */
	public List<Resource> queryResource(ResourceCriterial criterial);
	
	List<Resource> getResources(Long[] authorityIds) ;
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-4-12
	 * @param authorityIds
	 * @return
	 */
	List<Resource> getResourceByIds(long[] ids) ;
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-4-12
	 * @param ids
	 * @return
	 */
	List<Resource> getResourceRefs(long[] ids) ;
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-4-12
	 * @param menuName
	 * @param operateType
	 * @return
	 */
	List<Resource> getResources(long menuPackageID,String menuName, int operateType) ;
	
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-5-8
	 * @param url
	 * @return
	 */
	Resource loadResource(String url);
	
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-5-8
	 * @param userId
	 * @param resourceUrl
	 * @return
	 */
	boolean hasResource(long userId, String resourceUrl);
}
